package com.game.modular.game.playerMatch.domain;

import com.baomidou.mybatisplus.annotation.TableField;

import java.io.Serializable;
import java.util.Date;

import com.game.modular.gameCore.map.domain.CoreCity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.*;

/**
 * 城池信息(PvpCity)表实体类
 *
 * @author cxy
 * @since 2024-07-25 16:45:40
 */
@ApiModel("城池信息")
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
@SuppressWarnings("serial")
public class PvpCity implements Serializable {// swagger2,mybatis-plus
    ///////////////////////////////////////////////////////////////////////////////////////////////////////// 生成实体字段
    @ApiModelProperty("比赛id")
    private Long matchId;

    @ApiModelProperty("拥有者name")
    private String ownerName;

    @ApiModelProperty("城池拥有者uid")
    private Long ownerUid;

    @ApiModelProperty("上次被占领的时间")
    private Date lastOccupyTime;

    @ApiModelProperty("城池基础id")
    private Long coreCityId;

    @ApiModelProperty("状态 0野城,1正常,2被攻打")
    private Integer status;

    @ApiModelProperty("类型 1主城")
    private Integer type;

    @ApiModelProperty("预备兵")
    private Long readyArmy;

    @ApiModelProperty("预备兵产量")
    private Long readyArmyRate;

    @ApiModelProperty("铜币产量）")
    private Long copperRate;

    @ApiModelProperty("粮食产量")
    private Long grainRate;
    ///////////////////////////////////////////////////////////////////////////////////////////////////////// 序列化版本号
    @TableField(exist = false)
    private static final long serialVersionUID = -51497463313387042L;

    ///////////////////////////////////////////////////////////////////////////////////////////////////////// 非数据库字段
    /////////////////////////////////////////////////////////////////////////////////////////////////////////    领域业务

    /**
     * 清除 玩家|生产力统计
     */
    public void clear(CoreCity coreCity) {
        grainRate = coreCity.getGrainRate();
        copperRate = coreCity.getCopperRate();
        readyArmyRate = coreCity.getReadyArmyRate();
        readyArmy = 0L;
        ownerUid=0L;
        ownerName="";
    }
}

